#pragma once

namespace ETask
{
	enum Flag
	{
		DynamicVAO			= 1 << 0
	};
}

struct RTask
{
	const IModelMatrixOwner* matowner;
	const RMaterial*	material;
	const RVertexArray* vao;
	ETopology::Type		topology;
	uint				vertices;
	uint				flags;
	bool				done;
};

class QueueMgr
{
public:
	QueueMgr();
	~QueueMgr();

	void InitQueueMgr();

	void ClearQueue();
	void AddTask(const IModelMatrixOwner* matowner, const RMaterial* material, const RVertexArray* vertexarray, ETopology::Type topology, uint vertices, uint flags);
	void Flush();

private:
	std::vector<RTask>	m_tasks;
};

